'Spinner (F2) 04-04-08
'by Moonfisher
'Originaly a test bot for a new eye setup.
'It worked so well I enden up making an F2 league bot from it.
'Nothing fancy in here except the eyes.

'------------------- vars
def seteyes 50
def seteyewidth 51
def seteyespace 52
def setoffset 53

def state 54


'-------------------- constants
def spineyewidth 0
def spineyespace 105
def spinoffset 140

def scaning 1


cond
*.robage 0 =
start
1 .seteyes store
.spineyewidth .seteyewidth store
.spineyespace .seteyespace store
.spinoffset .setoffset store
.scaning .state store
123 120 store
120 .memloc store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop

cond
*.seteyes 1 =
start
*.setoffset .eye9dir store
*.setoffset *.seteyespace add .eye8dir store
*.setoffset *.seteyespace 2 mult add .eye7dir store
*.setoffset *.seteyespace 3 mult add .eye6dir store
*.setoffset *.seteyespace 4 mult add .eye5dir store
*.setoffset *.seteyespace 5 mult add .eye4dir store
*.setoffset *.seteyespace 6 mult add .eye3dir store
*.setoffset *.seteyespace 7 mult add .eye2dir store
*.setoffset *.seteyespace 8 mult add .eye1dir store
4 .focuseye store
0 .seteyes store
stop

cond
*.state .scaning =
*.eye9 0 >
*.memval 123 !=
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 10 div 20 sub 0 floor *.refvelup add .up store
*.refveldx .dx store
-6 .shoot store
*.nrg 20 div 10 ceil *.eye9 30 sub 0 floor sgn *.body 70 sub 0 floor sgn mult mult .shootval store
stop

cond
*.state .scaning =
*.eye9 0 >
*.memval 123 !=
*.robage 5 mod 0 =
*.venom 1 >
start
-3 .shoot store
0 .shootval store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond 
*.state .scaning =
*.eye9 0 =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.state .scaning =
*.eye9 0 !=
*.memval 123 =
*.robage 20 mod 16 >=
*.robage 200 >= or
start
*.aim 35 add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 !=
*.memval 123 =
*.robage 20 mod 16 <
*.robage 200 <
start
20 .dx store
stop

cond
*.robage 100 >=
*.robage 1000 <
*.eye9 0 =
*.robage 20 mod 10 >
start
20 .dx store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye1 0 >
start
*.aim *.eye1dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye2 0 >
start
*.aim *.eye2dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye3 0 >
start
*.aim *.eye3dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye4 0 >
start
*.aim *.eye4dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye5 0 >
start
*.aim *.eye5dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye6 0 >
start
*.aim *.eye6dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye7 0 >
start
*.aim *.eye7dir add .setaim store
stop

cond
*.state .scaning =
*.eye9 0 =
*.robage 20 >
*.memval 123 = and or
*.eye8 0 >
start
*.aim *.eye8dir add .setaim store
stop

cond
*.eye9 0 =
*.nrg 300 >
*.body 100 >
*.totalmyspecies 70 <
start
51 .repro store
stop

cond 
*.eye9 0 =
*.nrg 500 >
*.body 100 >
*.totalmyspecies 70 >=
start
51 .repro store
stop

cond
*.nrg 200 >
*.body 500 <
*.totalmyspecies 70 > or
start
100 .strbody store
stop

cond
*.nrg 100 <
*.body 20 >
start
50 .fdbody store
stop

cond
*.shell 50 <
*.nrg 50 >
start
20 .mkshell store
stop

cond
*.venom 50 <
*.nrg 20 >
start
10 .strvenom store
stop

cond
*.shell 200 <
*.nrg 200 >
*.eye9 0 >
*.refeye *.myeye !=
start
200 *.shell sub .mkshell store
stop

cond
*.shflav -1 =
*.nrg 80 >
*.poison 0 =
start
50 .strpoison store
stop

cond
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 >
start
*.shang .setaim store
-3 .shoot store
10 .shootval store
stop

cond
*.shflav 0 !=
*.shflav -2 !=
*.shflav -3 !=
*.nrg 80 >
*.venom 5 <=
start
*.shang .setaim store
.setaim .shoot store
*.refaim 682 add .shootval store
stop

cond
*.shflav 0 !=
start
0 .shflav store
stop

cond
*.numties 0 >
start
*.tiepres .tienum store
.tieval .tieloc store
1000 .tieval store
*.tiepres .deltie store
stop

cond
*.vtimer 0 !=
start
0 .vshoot store
stop

cond
*.repro 0 !=
*.repro 51 !=
start
0 .repro store
stop

cond
*.delgene 0 !=
start
0 .delgene store
stop